// 动态导入所有子目录下的index.ts元数据
const nodeModules = import.meta.glob('./**/index.ts', { eager: true });

export interface NodeTemplate {
  type: string;
  name: string;
  category: string;
  isHide?: boolean;
  icon: any;
  serializableFields: string[];
  handleBounds?: [];
  defaultData: Record<string, any>;
  component: any;
  propertyComponent: any;
}

// 初始化节点元数据集合
const nodeMetadata: Record<string, any> = {};

// 遍历所有子目录的index.ts导出
Object.values(nodeModules).forEach((module) => {
  const nodeMeta = module.default;
  if (nodeMeta && nodeMeta.type) {
    // 使用节点类型作为键名存储元数据
    nodeMetadata[nodeMeta.type] = nodeMeta;
  }
});

// 导出整合后的元数据
 export default nodeMetadata;